package com.ungs.bo.impl;

import java.util.ArrayList;
import java.util.List;

import com.ungs.bo.VarianteBO;
import com.ungs.dao.VarianteDAO;
import com.ungs.dao.impl.VarianteDAOImpl;
import com.ungs.entities.Variante;
import com.ungs.utils.Constantes;

public class VarianteBOImpl extends EntidadBOImpl<Variante> implements
		VarianteBO {

	private VarianteDAO varianteDAO = new VarianteDAOImpl();

	@Override
	public List<Variante> getVarianteByFilter(String param, boolean todos) {
		return varianteDAO.getVarianteByFilter(param, todos);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Variante> getAllVariante() {
		List<Variante> varianteList = (List<Variante>) getAll(Variante.class);
		List<Variante> varianteReturn = new ArrayList<Variante>();

		logger.info("Obteniendo lista de variante con alta logica");
		for (Variante variante : varianteList) {
			if (variante.getEstadoLogico().equals(Constantes.ALTA)) {
				varianteReturn.add(variante);
			}
		}

		return varianteReturn;
	}

	@Override
	public void eliminarVariante(Variante variante) {
		logger.info("Baja logica variante: " + variante.getId());
		variante.setEstadoLogico(Constantes.BAJA);
		actualizar(variante);

	}

	@Override
	public Long getUltimoId() {
		Long idVariante = null;
		Variante variante = varianteDAO.getUltimoVariante();

		logger.info("Obteniendo ultimo id de variante");
		if (variante != null) {
			idVariante = variante.getId();
		}

		return idVariante;
	}

}
